package Demo1;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class T3 {
    /*
    * 实现 Callable 接口 (线程完成之后需要返回值)
    * */
    public static void main(String[] args) {
//        创建线程任务资源对象
        MyCallable myCallable = new MyCallable();
//        创建线程任务对象 封装线程资源
        FutureTask<Integer> task = new FutureTask<>(myCallable);
//        创建线程对象 传入线程对象
        Thread thread = new Thread(task);
//        使用线程对象 调用 start 方法 开启线程
        thread.start();
        for (int i = 0; i < 200; i++) {
            System.out.println("主线程");
        }
    }
}
class MyCallable implements Callable<Integer>{

    @Override
    public Integer call() throws Exception {
        int sum = 0;
        for (int i = 0; i < 500; i++) {
            sum+=i;
            System.out.println("sum "+sum);
        }
        return sum;
    }
}
